package com.starview.star.code.repository;

import com.starview.platform.data.value.ResourceURI;
import com.starview.star.compiler.util.PrettyPrintable;

/**
 * A node in a repository
 * 
 * @author fgm
 * 
 */
public interface RepositoryNode extends PrettyPrintable
{
  /**
   * Return the repository entry itself. This must be a CodeCatalog -- i.e., a directory of entries
   * 
   * @return
   */
  public CodeCatalog getCode();

  /**
   * Each entry in a repository has a unique hash which is generated from the original source text
   * that the node corresponds to. This is used to decide whether or note a given source needs
   * recompiling.
   * 
   * @return
   */
  public String getHash();

  /**
   * return the uri this repository node is associated with
   */
  public ResourceURI getUri();
}